﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using конфигуратор;

namespace Wpfконфигуратор.Визуализаторы
{
    public class ВыборВизуализатора
    {
        public static ВизуализаторОснова Выбрать(IПеременная переменная)
        {
            var тип = переменная.ТипПеременной.Тип;

            ВизуализаторОснова Визуализатор;

            if ( тип.IsEnum )
            {
                if ( тип.IsDefined( typeof( FlagsAttribute ), false ) )
                {
                    return new ФлагВизуализатор() { Переменная = переменная };
                }
                return new ПеречислительВизуализатор() { Переменная = переменная };
            }
            if ( тип == typeof( Boolean ) )
            {
                Визуализатор = new BooleanВизуализатор() { Переменная = переменная };
                return Визуализатор;
            }
            if ( тип.IsPrimitive )
            {
                return new ЧислаВизуализатор() { Переменная = переменная };
            }
            if ( тип == typeof( string ) )
            {
                return new СтрокаВизуализатор() { Переменная = переменная };
            }
            if ( тип == typeof( АдресФайла ) )
            {
                return new АдресФайлаВизуализатор { Переменная = переменная };
            }

            Визуализатор = new ВизуализаторОснова() { Переменная = переменная };

            return Визуализатор;
        }
    }
}
